1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.apache.tapestry5.internal.beaneditor;
16
17 import org.apache.tapestry5.beaneditor.BeanModel;
18 import org.apache.tapestry5.beaneditor.PropertyModel;
19 import org.apache.tapestry5.internal.test.InternalBaseTestCase;
20 import org.easymock.EasyMock;
21 import org.testng.annotations.DataProvider;
22 import org.testng.annotations.Test;
23
24 public class BeanModelUtilsTest extends InternalBaseTestCase
25 {
26 @Test(dataProvider = "split_inputs")
27 public void split(String propertyNames, String[] expected)
28 {
29 assertEquals(BeanModelUtils.split(propertyNames), expected);
30 }
31
32 private Object[] build(String propertyNames, String... expected)
33 {
34 return new Object[]
35 {propertyNames, expected};
36 }
37
38 @DataProvider
39 public Object[][] split_inputs()
40 {
41 return new Object[][]
42 {build("fred", "fred"), build("fred,barney", "fred", "barney"),
43 build(" fred, barney, wilma, betty ", "fred", "barney", "wilma", "betty"),
44 new Object[]
45 {" ", new String[0]}};
46 }
47
48 @Test
49 public void exclude()
50 {
51 BeanModel model = mockBeanModel();
52
53 expect(model.exclude("fred", "barney")).andReturn(model);
54
55 replay();
56
57 BeanModelUtils.exclude(model, "fred,barney");
58
59 verify();
60 }
61
62 @Test
63 public void reorder()
64 {
65 BeanModel model = mockBeanModel();
66
67 expect(model.reorder("fred", "barney")).andReturn(model);
68
69 replay();
70
71 BeanModelUtils.reorder(model, "fred,barney");
72
73 verify();
74 }
75
76 @Test
77 public void add()
78 {
79 BeanModel model = mockBeanModel();
80 PropertyModel fred = mockPropertyModel();
81 PropertyModel barney = mockPropertyModel();
82
83 expect(model.addEmpty("fred")).andReturn(fred);
84 expect(model.addEmpty("barney")).andReturn(barney);
85
86 replay();
87
88 BeanModelUtils.add(model, "fred,barney");
89
90 verify();
91 }
92
93
94
95
96 @Test
97 public void include_before_add()
98 {
99 BeanModel model = mockBeanModel();
100 PropertyModel fred = mockPropertyModel();
101
102 EasyMock.checkOrder(model, true);
103
104 expect(model.addEmpty("fred")).andReturn(fred);
105
106 expect(model.include("sam", "fred")).andReturn(model);
107
108 replay();
109
110 BeanModelUtils.modify(model, "fred", "sam", null, null);
111
112 verify();
113 }
114
115 @Test
116 public void modify_no_work()
117 {
118 BeanModel model = mockBeanModel();
119
120 replay();
121
122 BeanModelUtils.modify(model, null, null, null, null);
123
124 verify();
125 }
126
127 @Test
128 public void modify_full()
129 {
130 BeanModel model = mockBeanModel();
131 PropertyModel fred = mockPropertyModel();
132 PropertyModel barney = mockPropertyModel();
133
134 expect(model.addEmpty("fred")).andReturn(fred);
135 expect(model.addEmpty("barney")).andReturn(barney);
136
137 expect(model.exclude("pebbles", "bambam")).andReturn(model);
138
139 expect(model.reorder("wilma", "betty")).andReturn(model);
140
141 replay();
142
143 BeanModelUtils.modify(model, "fred,barney", null, "pebbles,bambam", "wilma,betty");
144
145 verify();
146 }
147
148 @Test
149 public void modify_include()
150 {
151 BeanModel model = mockBeanModel();
152
153 expect(model.include("fred", "wilma")).andReturn(model);
154
155 replay();
156
157 BeanModelUtils.modify(model, null, "fred,wilma", null, null);
158
159 verify();
160 }
161 }